package net.tycmc.cty.ctyms.timejob.iems.service;

import java.util.Date;
import java.util.List;
import java.util.Map;


import net.tycmc.bulb.common.util.DateUtil;
import net.tycmc.cty.ctyms.timejob.iems.dao.UpdateDataBaseMonthDAO;

public class UpdateDataBaseMonthService {
	
	private UpdateDataBaseMonthDAO updateDataBaseMonthDAO;

	
	public UpdateDataBaseMonthDAO getUpdateDataBaseMonthDAO() {
		return updateDataBaseMonthDAO;
	}

	public void setUpdateDataBaseMonthDAO(
			UpdateDataBaseMonthDAO updateDataBaseMonthDAO) {
		this.updateDataBaseMonthDAO = updateDataBaseMonthDAO;
	}

	/**
	 * 更新数据库月库解码信息
	 */
	public void startWork() {
		//更新日期
		String statTime = DateUtil.addDay(0);
		System.out.println("更新数据库月库解码信息开始,更新日期:"+statTime+"——————————————执行时间："+DateUtil.toString(new Date()));
		//每月的一号进行月库解码信息修改
		if("01".equals(statTime.substring(8, 10))){
			//获取上月数据库解码信息
			Map<String, Object> lmInfo = updateDataBaseMonthDAO.getLastMonthInfo();
			//获取前四个月数据库解码信息
			List<Map<String, Object>> bmInfoList = updateDataBaseMonthDAO.getBmInfoList();
			if(lmInfo!=null && lmInfo.size()>0){
				//增加当前月份记录，与上月保持一致
				boolean isInFlag = updateDataBaseMonthDAO.insertCurMonthInfo(lmInfo,statTime+" 00:00:00.000",statTime.replaceAll("-", "").substring(0,6));
				if(isInFlag){
					System.out.println("增加当月月库信息成功!");
				} else {
					System.out.println("增加当月月库信息失败!");
				}
			} else {
				System.out.println("没有上月数据库解码信息!");
			}
			//存在之前第4月份，更新
			if(bmInfoList!=null && bmInfoList.size()>2){
				// 存在之前第5月份信息，更新第四月份信息与第5月份信息一致
				if(bmInfoList.size() == 4){
					//前第5月份信息
					Map<String, Object> bmFiInfo = bmInfoList.get(3);
					//第4月份信息
					Map<String, Object> bmFoInfo = bmInfoList.get(2);
					//更新第四月份信息
					boolean isUpFlag = updateDataBaseMonthDAO.updatebfMonthInfo(bmFiInfo,bmFoInfo);
					if(isUpFlag){
						System.out.println("更新第四月份信息成功!");
					} else {
						System.out.println("更新第四月份信息失败!");
					}
				} else {
					System.out.println("不存在前第5月份信息，不需要更新第四月份信息!");
				}
			} else {
				System.out.println("不存在之前第4月份！");
			}
			System.out.println("更新数据库月库解码信息结束,更新日期:"+statTime+"——————————————执行时间："+DateUtil.toString(new Date()));
		} else {
			System.out.println("当前天不为每月一号,更新数据库月库解码信息结束,更新日期:"+statTime+"——————————————执行时间："+DateUtil.toString(new Date()));
		}
		
		
	}
	
	public static void main(String[] args) {}
}
